home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / PROGENV / ClassItem.C < prev    next >
C/C++ Source or Header  |  1990-12-04  |  2KB  |  77 lines

  1. //$ClassItem,ObjectItem,$
  2.  
  3. #include "ClassItem.h"
  4. #include "Class.h"
  5. #include "String.h"
  6.  
  7. //---- ClassItem -----------------------------------------------------
  8.  
  9. MetaImpl(ClassItem, (TP(cl), 0));
  10.  
  11. ClassItem::ClassItem(int id, Class *c, char *label) 
  12.     : TextItem(id, c->Name(), 
  13.         gFixedFont->WithFace(c->IsAbstract() ? eFaceItalic : eFacePlain),
  14.         Point(2,1))
  15. {
  16.     cl= c;
  17.     if (label)
  18.     SetString(label);
  19. }
  20.  
  21. int ClassItem::Compare(ObjPtr op)
  22. {
  23.     return StrCmp((byte*)ClassName(), (byte*)Guard(op, ClassItem)->ClassName(), -1, sortmap);
  24. }
  25.  
  26. bool ClassItem::IsEqual(ObjPtr b)
  27. {
  28.     return b->IsKindOf(ClassItem) &&
  29.         StrCmp((byte*)ClassName(), (byte*)((ClassItem*)b)->ClassName()) == 0;
  30. }
  31.  
  32. Metric ClassItem::GetMinSize()
  33. {
  34.     if (TestFlag(eClItemCollapsed))
  35.     return Metric(Point(8));
  36.     return TextItem::GetMinSize();
  37. }
  38.  
  39. void ClassItem::Draw(Rectangle r)
  40. {
  41.     if (TestFlag(eClItemCollapsed))
  42.     GrPaintRect(ContentRect().Inset(2), ePatGrey50);
  43.     else
  44.     TextItem::Draw(r);
  45. }
  46.  
  47. //---- ObjectItem --------------------------------------------------------------
  48.  
  49. MetaImpl(ObjectItem, (TP(op), 0));
  50.  
  51. ObjectItem::ObjectItem(int id, Object *o)
  52.                     : TextItem(id, 0, gFixedFont, Point(2,1))
  53. {
  54.     char buf[200];
  55.     buf[0]= '\0';
  56.     op= o;
  57.     op->InspectorId(buf, sizeof(buf));
  58.     if (strlen(buf))
  59.     SetFString(FALSE, "0x%x %s", int(op), buf);
  60.     else
  61.     SetFString(FALSE, "0x%x", int(op));
  62. }
  63.  
  64. ObjectItem::ObjectItem(int id, char *msg, Object *o)
  65.                     : TextItem(id, 0, gFixedFont, Point(2,1))
  66. {
  67.     op= o;
  68.     SetString(msg);
  69. }
  70.  
  71. ObjectItem::ObjectItem(char *iv, Object *o)
  72.                     : TextItem(cIdNone, 0, gFixedFont, Point(4,0))
  73. {
  74.     op= o;
  75.     SetFString(FALSE, "%s 0x%x", iv, int(op));    
  76. }
  77.